System.Nullable<T> – struktura
Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.
Třída Nullable představuje typ hodnoty, který lze přiřadit null
.
Typ je řečeno, že má hodnotu null, pokud může být přiřazena hodnota nebo lze přiřadit null
, což znamená, že typ nemá žádnou hodnotu. Ve výchozím nastavení jsou všechny odkazové typy, například String, nullable, ale všechny typy hodnot, například Int32, nejsou.
V jazyce C# a Visual Basic označíte typ hodnoty jako hodnotu null pomocí zápisu ?
za typem hodnoty. Například int?
v jazyce C# nebo Integer?
v jazyce Visual Basic deklaruje celočíselnou hodnotu typu, který lze přiřadit null
.
Struktura Nullable<T> podporuje použití pouze typu hodnoty jako typu s možnou hodnotou null, protože odkazové typy mají hodnotu nullable podle návrhu.
Třída Nullable poskytuje doplňkovou podporu struktury Nullable<T> . Třída Nullable podporuje získání základního typu typu s možnou hodnotou null a operace porovnání a rovnosti u dvojic typů s možnou hodnotou null, jejichž základní typ hodnoty nepodporuje obecné operace porovnání a rovnosti.
Základní vlastnosti
Dva základní členy Nullable<T> struktury jsou vlastnosti HasValue a Value vlastnosti. HasValue Pokud je true
vlastnost objektu Nullable<T> , je hodnota objektu přístupná s Value vlastností. HasValue Pokud je false
vlastnost , hodnota objektu není definována a pokus o přístup Value k vlastnosti vyvolá výjimku InvalidOperationException.
Boxing and unboxing
Pokud je zadán typ s možnou hodnotou null, modul CLR (Common Language Runtime) automaticky zadává podkladovou hodnotu objektu Nullable<T> , nikoli Nullable<T> samotný objekt. To znamená, že pokud HasValue je true
vlastnost , obsah Value vlastnosti je boxed. Pokud je podkladová hodnota typu s možnou hodnotou null rozbalována, modul CLR (Common Language Runtime) vytvoří novou Nullable<T> strukturu inicializovanou na podkladovou hodnotu.
HasValue
Pokud je false
vlastnost typu nullable , výsledek operace boxing je null
. V důsledku toho, pokud boxed nullable typ je předán metodě, která očekává argument objektu, tato metoda musí být připravena zpracovat případ, kde argument je null
. Pokud null
je unboxed do typu nullable, common language runtime vytvoří novou Nullable<T> strukturu a inicializuje jeho HasValue
vlastnost na false
.
Komponenty prostředí Windows Runtime
Typ můžete zahrnout Nullable<T> jako člen struktury exportované do knihovny WinMD.